package com.example.stuwork.dao;

import com.example.stuwork.pojo.Teacher;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 教师数据访问接口
 */
@Repository
public interface TeacherDao {
    
    /**
     * 获取所有教师
     *
     * @return 教师列表
     */
    List<Teacher> findAll();
    
    /**
     * 根据教师工号获取教师信息
     *
     * @param teacherId 教师工号
     * @return 教师信息
     */
    Teacher getById(@Param("teacherId") String teacherId);
    
    /**
     * 根据院系编号获取教师列表
     *
     * @param deptNumber 院系编号
     * @return 教师列表
     */
    List<Teacher> findByDeptNumber(@Param("deptNumber") String deptNumber);
    
    /**
     * 添加教师
     *
     * @param teacher 教师信息
     * @return 影响行数
     */
    int insert(Teacher teacher);
    
    /**
     * 更新教师信息
     *
     * @param teacher 教师信息
     * @return 影响行数
     */
    int update(Teacher teacher);
    
    /**
     * 删除教师
     *
     * @param teacherId 教师工号
     * @return 影响行数
     */
    int delete(@Param("teacherId") String teacherId);
    
    /**
     * 更新教师密码
     *
     * @param teacherId 教师工号
     * @param password  新密码
     * @return 影响行数
     */
    int updatePassword(@Param("teacherId") String teacherId, @Param("password") String password);
    
    /**
     * 检查教师是否存在
     *
     * @param teacherId 教师工号
     * @return 存在返回true，否则返回false
     */
    boolean exists(@Param("teacherId") String teacherId);
    
    /**
     * 根据关键字搜索教师
     *
     * @param keyword 关键字
     * @return 教师列表
     */
    List<Teacher> search(@Param("keyword") String keyword);
} 